package org.jsola.hr.helper;

import org.jsola.hr.dto.GysInfoAddDTO;
import org.jsola.hr.dto.GysInfoUpdateDTO;
import org.jsola.hr.entity.GysInfoDO;
import org.jsola.hr.query.GysInfoQuery;
import org.jsola.hr.service.IGysInfoService;
import org.jsola.hr.vo.GysInfoVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

import java.util.List;

import static org.jsola.hr.core.AbstractTest.SITE_ID;



/**
 * 供应商信息表
 *
 * @author zhr
 */
@Component
public class GysInfoTestHelper extends BaseTestHelper {
    
    @Autowired
    private IGysInfoService gysInfoService;

    /**
     * 生成add测试数据
     * @return GysInfoAddDTO
     */
    public GysInfoAddDTO getGysInfoAddDTO(){
        GysInfoAddDTO gysInfoAddDTO = new GysInfoAddDTO();
        gysInfoAddDTO.setGroupId(getRandomValue("varchar",50));
        gysInfoAddDTO.setGysName(getRandomValue("varchar",255));
        gysInfoAddDTO.setContent(getRandomValue("text",0));
        gysInfoAddDTO.setContractLife(getRandomValue("varchar",255));
        gysInfoAddDTO.setAddress(getRandomValue("varchar",255));
        gysInfoAddDTO.setRemark(getRandomValue("varchar",255));
        gysInfoAddDTO.setContractUrl(getRandomValue("text",0));
        gysInfoAddDTO.setBusinessLicenseUrl(getRandomValue("text",0));
        gysInfoAddDTO.setOtherFileUrl(getRandomValue("text",0));
        gysInfoAddDTO.setContactName(getRandomValue("varchar",255));
        gysInfoAddDTO.setContactSex(getRandomValue("varchar",255));
        gysInfoAddDTO.setContactPhone(getRandomValue("varchar",255));
        gysInfoAddDTO.setContactEmail(getRandomValue("varchar",255));
        gysInfoAddDTO.setContactWX(getRandomValue("varchar",255));
        gysInfoAddDTO.setCorporateName(getRandomValue("varchar",255));
        gysInfoAddDTO.setCorporateSex(getRandomValue("varchar",255));
        gysInfoAddDTO.setCorporatePhone(getRandomValue("varchar",255));
        gysInfoAddDTO.setCorporateEmail(getRandomValue("varchar",255));
        gysInfoAddDTO.setCorporateWX(getRandomValue("varchar",255));
        return gysInfoAddDTO;
    }


    /**
     * 生成update测试数据
     * @return GysInfoUpdateDTO
     */
    public GysInfoUpdateDTO getGysInfoUpdateDTO(GysInfoVO gysInfoVO){
        return gysInfoService.selectDOById(gysInfoVO.getId(), SITE_ID).to(GysInfoUpdateDTO.class);
    }

    /**
     * 生成查询数据
     * @return GysInfoQuery
     */
    public GysInfoQuery getGysInfoQuery() {
        GysInfoQuery gysInfoQuery = new GysInfoQuery();
        List<GysInfoDO> gysInfoDOList = gysInfoService.list(new GysInfoDO(),SITE_ID);
        if (!CollectionUtils.isEmpty(gysInfoDOList)) {
            GysInfoDO gysInfoDO = gysInfoDOList.get(0);
            gysInfoQuery = gysInfoDO.to(GysInfoQuery.class);
        }
        return gysInfoQuery;
    }

    /**
     * 保存示例
     * @return GysInfoVO
     */
    public GysInfoVO saveGysInfoExample(){
        GysInfoAddDTO addDTO = this.getGysInfoAddDTO();
        GysInfoVO gysInfoVO = gysInfoService.save(addDTO,buildTokenUser());
        return gysInfoVO;
    }


}

